/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package avl.sv.shared.model.classifier;

import avl.sv.shared.Sample;
import avl.sv.shared.SampleSetClass;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JPanel;

/**
 *
 * @author benbryan
 */
public interface AbstractClassifier {

    abstract public String[] getClassNames();
    abstract public void setClassNames(String[] classNames);

    abstract public boolean isActive();
    abstract public void setActive(boolean isActive);

    abstract public String getMessage();
    abstract public void setMessage(String message);
            
    abstract public Date getLastTrained();
    abstract public void setLastTrained(Date lastTrained);
    
    abstract public String getName();
        
    abstract public void train(ArrayList<SampleSetClass> samplesSets);
    
    abstract public boolean isValid();
    
    abstract public void predict(ArrayList<Sample> samples);
    
    abstract public double[] getLabels();
    
    abstract public JPanel getOptionsPanel();

    abstract public void invalidate();
    
}
